/**
 * <copyright>
 * </copyright>
 *
 * $Id$
 */
package org.hl7.v3;

import java.util.Arrays;
import java.util.Collections;
import java.util.List;

import org.eclipse.emf.common.util.Enumerator;

/**
 * <!-- begin-user-doc -->
 * A representation of the literals of the enumeration '<em><b>Internal Medicine Provider Codes</b></em>',
 * and utility methods for working with them.
 * <!-- end-user-doc -->
 * <!-- begin-model-doc -->
 * specDomain: S20126 (C-0-T19465-S20096-S20126-cpt)
 * <!-- end-model-doc -->
 * @see org.hl7.v3.V3Package#getInternalMedicineProviderCodes()
 * @model extendedMetaData="name='InternalMedicineProviderCodes'"
 * @generated
 */
public enum InternalMedicineProviderCodes implements Enumerator {
	/**
	 * The '<em><b>207R00000X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207R00000X_VALUE
	 * @generated
	 * @ordered
	 */
	_207R00000X(0, "_207R00000X", "207R00000X"),

	/**
	 * The '<em><b>207RA0401X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RA0401X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RA0401X(1, "_207RA0401X", "207RA0401X"),

	/**
	 * The '<em><b>207RA0000X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RA0000X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RA0000X(2, "_207RA0000X", "207RA0000X"),

	/**
	 * The '<em><b>207RA0201X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RA0201X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RA0201X(3, "_207RA0201X", "207RA0201X"),

	/**
	 * The '<em><b>207RC0000X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RC0000X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RC0000X(4, "_207RC0000X", "207RC0000X"),

	/**
	 * The '<em><b>207RI0001X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RI0001X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RI0001X(5, "_207RI0001X", "207RI0001X"),

	/**
	 * The '<em><b>207RC0001X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RC0001X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RC0001X(6, "_207RC0001X", "207RC0001X"),

	/**
	 * The '<em><b>207RC0200X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RC0200X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RC0200X(7, "_207RC0200X", "207RC0200X"),

	/**
	 * The '<em><b>207RE0101X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RE0101X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RE0101X(8, "_207RE0101X", "207RE0101X"),

	/**
	 * The '<em><b>207RG0100X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RG0100X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RG0100X(9, "_207RG0100X", "207RG0100X"),

	/**
	 * The '<em><b>207RG0300X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RG0300X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RG0300X(10, "_207RG0300X", "207RG0300X"),

	/**
	 * The '<em><b>207RH0000X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RH0000X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RH0000X(11, "_207RH0000X", "207RH0000X"),

	/**
	 * The '<em><b>207RH0003X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RH0003X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RH0003X(12, "_207RH0003X", "207RH0003X"),

	/**
	 * The '<em><b>207RI0008X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RI0008X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RI0008X(13, "_207RI0008X", "207RI0008X"),

	/**
	 * The '<em><b>207RI0200X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RI0200X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RI0200X(14, "_207RI0200X", "207RI0200X"),

	/**
	 * The '<em><b>207RI0011X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RI0011X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RI0011X(15, "_207RI0011X", "207RI0011X"),

	/**
	 * The '<em><b>207RM1200X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RM1200X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RM1200X(16, "_207RM1200X", "207RM1200X"),

	/**
	 * The '<em><b>207RX0202X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RX0202X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RX0202X(17, "_207RX0202X", "207RX0202X"),

	/**
	 * The '<em><b>207RN0300X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RN0300X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RN0300X(18, "_207RN0300X", "207RN0300X"),

	/**
	 * The '<em><b>207RP1001X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RP1001X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RP1001X(19, "_207RP1001X", "207RP1001X"),

	/**
	 * The '<em><b>207RR0500X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RR0500X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RR0500X(20, "_207RR0500X", "207RR0500X"),

	/**
	 * The '<em><b>207RS0010X</b></em>' literal object.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @see #_207RS0010X_VALUE
	 * @generated
	 * @ordered
	 */
	_207RS0010X(21, "_207RS0010X", "207RS0010X");

	/**
	 * The '<em><b>207R00000X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207R00000X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207R00000X
	 * @model literal="207R00000X"
	 * @generated
	 * @ordered
	 */
	public static final int _207R00000X_VALUE = 0;

	/**
	 * The '<em><b>207RA0401X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RA0401X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RA0401X
	 * @model literal="207RA0401X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RA0401X_VALUE = 1;

	/**
	 * The '<em><b>207RA0000X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RA0000X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RA0000X
	 * @model literal="207RA0000X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RA0000X_VALUE = 2;

	/**
	 * The '<em><b>207RA0201X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RA0201X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RA0201X
	 * @model literal="207RA0201X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RA0201X_VALUE = 3;

	/**
	 * The '<em><b>207RC0000X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RC0000X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RC0000X
	 * @model literal="207RC0000X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RC0000X_VALUE = 4;

	/**
	 * The '<em><b>207RI0001X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RI0001X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RI0001X
	 * @model literal="207RI0001X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RI0001X_VALUE = 5;

	/**
	 * The '<em><b>207RC0001X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RC0001X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RC0001X
	 * @model literal="207RC0001X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RC0001X_VALUE = 6;

	/**
	 * The '<em><b>207RC0200X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RC0200X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RC0200X
	 * @model literal="207RC0200X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RC0200X_VALUE = 7;

	/**
	 * The '<em><b>207RE0101X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RE0101X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RE0101X
	 * @model literal="207RE0101X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RE0101X_VALUE = 8;

	/**
	 * The '<em><b>207RG0100X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RG0100X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RG0100X
	 * @model literal="207RG0100X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RG0100X_VALUE = 9;

	/**
	 * The '<em><b>207RG0300X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RG0300X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RG0300X
	 * @model literal="207RG0300X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RG0300X_VALUE = 10;

	/**
	 * The '<em><b>207RH0000X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RH0000X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RH0000X
	 * @model literal="207RH0000X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RH0000X_VALUE = 11;

	/**
	 * The '<em><b>207RH0003X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RH0003X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RH0003X
	 * @model literal="207RH0003X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RH0003X_VALUE = 12;

	/**
	 * The '<em><b>207RI0008X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RI0008X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RI0008X
	 * @model literal="207RI0008X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RI0008X_VALUE = 13;

	/**
	 * The '<em><b>207RI0200X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RI0200X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RI0200X
	 * @model literal="207RI0200X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RI0200X_VALUE = 14;

	/**
	 * The '<em><b>207RI0011X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RI0011X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RI0011X
	 * @model literal="207RI0011X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RI0011X_VALUE = 15;

	/**
	 * The '<em><b>207RM1200X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RM1200X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RM1200X
	 * @model literal="207RM1200X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RM1200X_VALUE = 16;

	/**
	 * The '<em><b>207RX0202X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RX0202X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RX0202X
	 * @model literal="207RX0202X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RX0202X_VALUE = 17;

	/**
	 * The '<em><b>207RN0300X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RN0300X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RN0300X
	 * @model literal="207RN0300X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RN0300X_VALUE = 18;

	/**
	 * The '<em><b>207RP1001X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RP1001X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RP1001X
	 * @model literal="207RP1001X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RP1001X_VALUE = 19;

	/**
	 * The '<em><b>207RR0500X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RR0500X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RR0500X
	 * @model literal="207RR0500X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RR0500X_VALUE = 20;

	/**
	 * The '<em><b>207RS0010X</b></em>' literal value.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of '<em><b>207RS0010X</b></em>' literal object isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @see #_207RS0010X
	 * @model literal="207RS0010X"
	 * @generated
	 * @ordered
	 */
	public static final int _207RS0010X_VALUE = 21;

	/**
	 * An array of all the '<em><b>Internal Medicine Provider Codes</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private static final InternalMedicineProviderCodes[] VALUES_ARRAY =
		new InternalMedicineProviderCodes[] {
			_207R00000X,
			_207RA0401X,
			_207RA0000X,
			_207RA0201X,
			_207RC0000X,
			_207RI0001X,
			_207RC0001X,
			_207RC0200X,
			_207RE0101X,
			_207RG0100X,
			_207RG0300X,
			_207RH0000X,
			_207RH0003X,
			_207RI0008X,
			_207RI0200X,
			_207RI0011X,
			_207RM1200X,
			_207RX0202X,
			_207RN0300X,
			_207RP1001X,
			_207RR0500X,
			_207RS0010X,
		};

	/**
	 * A public read-only list of all the '<em><b>Internal Medicine Provider Codes</b></em>' enumerators.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static final List<InternalMedicineProviderCodes> VALUES = Collections.unmodifiableList(Arrays.asList(VALUES_ARRAY));

	/**
	 * Returns the '<em><b>Internal Medicine Provider Codes</b></em>' literal with the specified literal value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static InternalMedicineProviderCodes get(String literal) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			InternalMedicineProviderCodes result = VALUES_ARRAY[i];
			if (result.toString().equals(literal)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Internal Medicine Provider Codes</b></em>' literal with the specified name.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static InternalMedicineProviderCodes getByName(String name) {
		for (int i = 0; i < VALUES_ARRAY.length; ++i) {
			InternalMedicineProviderCodes result = VALUES_ARRAY[i];
			if (result.getName().equals(name)) {
				return result;
			}
		}
		return null;
	}

	/**
	 * Returns the '<em><b>Internal Medicine Provider Codes</b></em>' literal with the specified integer value.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public static InternalMedicineProviderCodes get(int value) {
		switch (value) {
			case _207R00000X_VALUE: return _207R00000X;
			case _207RA0401X_VALUE: return _207RA0401X;
			case _207RA0000X_VALUE: return _207RA0000X;
			case _207RA0201X_VALUE: return _207RA0201X;
			case _207RC0000X_VALUE: return _207RC0000X;
			case _207RI0001X_VALUE: return _207RI0001X;
			case _207RC0001X_VALUE: return _207RC0001X;
			case _207RC0200X_VALUE: return _207RC0200X;
			case _207RE0101X_VALUE: return _207RE0101X;
			case _207RG0100X_VALUE: return _207RG0100X;
			case _207RG0300X_VALUE: return _207RG0300X;
			case _207RH0000X_VALUE: return _207RH0000X;
			case _207RH0003X_VALUE: return _207RH0003X;
			case _207RI0008X_VALUE: return _207RI0008X;
			case _207RI0200X_VALUE: return _207RI0200X;
			case _207RI0011X_VALUE: return _207RI0011X;
			case _207RM1200X_VALUE: return _207RM1200X;
			case _207RX0202X_VALUE: return _207RX0202X;
			case _207RN0300X_VALUE: return _207RN0300X;
			case _207RP1001X_VALUE: return _207RP1001X;
			case _207RR0500X_VALUE: return _207RR0500X;
			case _207RS0010X_VALUE: return _207RS0010X;
		}
		return null;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final int value;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String name;

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private final String literal;

	/**
	 * Only this class can construct instances.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	private InternalMedicineProviderCodes(int value, String name, String literal) {
		this.value = value;
		this.name = name;
		this.literal = literal;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public int getValue() {
	  return value;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getName() {
	  return name;
	}

	/**
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	public String getLiteral() {
	  return literal;
	}

	/**
	 * Returns the literal value of the enumerator, which is its string representation.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @generated
	 */
	@Override
	public String toString() {
		return literal;
	}
	
} //InternalMedicineProviderCodes
